replace gamma functions with #defines
authorØyvind Kolås <pippin@gimp.org>
Sun, 22 Apr 2012 23:53:27 +0000 (01:53 +0200)
committerØyvind Kolås <pippin@gimp.org>
Sun, 22 Apr 2012 23:53:30 +0000 (01:53 +0200)
Causes some slight speedup across babl on less agressive optimization
levels.

babl/base/util.h

index a229894562056d0cd3501b43152e5d0680b7a347..a9d2049b361b7dc81a7d431ffd57630069e21dad 100644 (file)
@@ -67,20 +67,21 @@ static inline double xpow512 (double x)
 }
 
 
+#if 0
 static inline double
 linear_to_gamma_2_2 (double value)
 {
-#if 0
   if (value > 0.0030402477F)
     return 1.055F * pow (value, (1.0F/2.4F)) - 0.055F;
   return 12.92F * value;
+}
 #else
-  if (value > 0.0030402477F)
-    return 1.055F * xpow512 (value) - 0.055F;
-  return 12.92F * value;
+
+#define linear_to_gamma_2_2(value) \
+  ((value > 0.0030402477F)? 1.055F * xpow512 (value) - 0.055F: 12.92F * value)
 #endif
-}
 
+#if 0
 static inline double
 gamma_2_2_to_linear (double value)
 {
@@ -88,6 +89,10 @@ gamma_2_2_to_linear (double value)
     return pow ((value + 0.055F) / 1.055F, 2.4F);
   return value / 12.92F;
 }
+#else
+#define gamma_2_2_to_linear(value) \
+  ((value > 0.03928F) ?  pow ((value + 0.055F) / 1.055F, 2.4F):value / 12.92F)
+#endif
 
 #else
   #define linear_to_gamma_2_2(value) (pow((value), (1.0F/2.2F)))